A high-speed network environment typically includes network devices such as routers and switches that facilitate delivery of information packets from source devices to destination devices. Information pertaining to the transfer of packet(s) through the network is usually embedded within one or more packets. Each packet traveling through a network can typically be treated independently from other packets in a packet stream. For example, each router within a network processes incoming packets and determines where the packet(s) should be forwarded. In a high-speed computing network environment, the speed of packet processing or routing can be critical in determining the performance of overall network system.
To monitor network traffic, a virtual circuit or virtual connection is typically setup across a communications network such as a packet-switched network for managing packet flow. The virtual circuit, also known as virtual channel, provides packets delivery between various nodes within the virtual circuit. Packets pertaining to a packet flow typically travel through the virtual circuit to reach their destination(s). When network load for packet flows is unevenly distributed, the performance of network traffic may be degraded due to congested nodes. Congested nodes can happen when packets routing is concentrated to few nodes and can create bottlenecks for the virtual circuit of the network.
A conventional approach to balance network load is to implement load balancing technique to spread packets across multiple circuits, nodes, and/or paths between source and destination devices. One load balancing method is to route each request in turn to a different path or route based on a round-robin fashion. A drawback associated with the equal-weighted paths with round-robin fashion is that node congestion can still occur, and one or two congested nodes can slow down the entire network traffic.